package com.tl.spider.utils.common_utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式工具类
 * 
 * @date 2021年7月20日
 * @author Antg
 */
public class RegexUtil {
	/**
	 * 通过一个内容和一个正则表达式获取到一个Matcher对象
	 * 
	 * @param content
	 * @param regex
	 * @return
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static Matcher getMatcher(String content, String regex) {
		return Pattern.compile(regex).matcher(content);
	}

	/**
	 * 通过内容和匹配规则获取匹配内容
	 * 
	 * @param content
	 * @param regex
	 * @return
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static String getMatchContent(String content, String regex) {
		Matcher matcher = Pattern.compile(regex).matcher(content);
		if (matcher.find()) {
			return matcher.group();
		} else {
			return null;
		}
	}

	/**
	 * 通过内容,匹配规则,下标获取对应匹配内容
	 * 
	 * @param content
	 * @param regex
	 * @param index
	 * @return
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static String getMatchContent(String content, String regex, int index) {
		Matcher matcher = Pattern.compile(regex).matcher(content);
		if (matcher.find()) {
			return matcher.group(index);
		} else {
			return null;
		}
	}

	/**
	 * 获取所有的的匹配结果,结果保存在一个list中
	 * 
	 * @param content
	 * @param regex
	 * @return
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static List<String> getMatchContents(String content, String regex) {
		List<String> resultList = new ArrayList<String>();
		Matcher matcher = Pattern.compile(regex).matcher(content);
		while (matcher.find()) {
			resultList.add(matcher.group());
		}
		return resultList;
	}
}
